<?php
	$titulo = "Guía de Inicio Desarrollador";
	require "cabecera.php";
?>

	<meta name="keywords" content="Infocom, InfocomSA, Infocom S.A., Servoy, Desarrollo Java, Herramientas Java, Desarrollo Web, Desarrollo Mobile, Productos Servoy, Servoy Web Client, Servoy Smart Client, Servoy Headless Cliente, Cliente Web, Tutorial Servoy, Servoy Tutorial Español"/>
</head>
<body>

	<?php
		include "menu_datos.php";
		include "menu_arriba.php";
	?>

	<?php include "servoy_menu.php"; ?>
	
	<div class="main">

		<h2 class="titulo_naranja">Guía de Inicio Rápido de Servoy</h2>
		<a target="_blank" href="./files/servoy_guia_inicio.pdf">
		<img src="./images/pdf.png" width="20" height="20" alt="Bajar PDF" title="Bajar PDF" style="float: left;"></a>
		
		<br>
		
		<ul id="index2" class="index2">
			<li class="wiki">
				<a onclick="esconderSeccion('conceptos_principales')">
					Conceptos Principales de Servoy</a></li>
				
				<div id="conceptos_principales" name="conceptos_principales" class="seccion">
					<table>
						<tr>
							<th colspan="2"><span class="texto">Generales</span></th>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Java</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Plataforma de desarrollo de aplicaciones que incluye al lenguaje de programación del mismo 
									nombre y que se caracteriza por la gran portabilidad de sus objetos compilados a casi todas las plataformas de 
									hardware y sistemas operativos existentes, a través del concepto de JRE (Java Runtime Environment).
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>JDBC (Java Database Connectivity)</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">API que permite la ejecución de operaciones sobre bases de datos desde Java, independientemente 
									del sistema operativo donde se ejecute o de la base de datos a la cual se accede, utilizando el lenguaje SQL 
									del motor de base de datos que se utilice.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>JAR (Java ARchive)</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Tipo de archivo que permite ejecutar aplicaciones escritas en el lenguaje Java.</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>JavaScript</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Lenguaje de programación interpretado. Se define como orientado a objetos y prototipos, imperativo, 
									débilmente tipado y dinámico. Se utiliza principalmente en su forma del lado del cliente, implementado como parte 
									de un navegador web permitiendo mejoras en la interfaz de usuario y páginas web dinámicas. Es el lenguaje utilizado 
									por Servoy para escribir su lógica de negocios.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Evento</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Suceso que ocurre en la ejecución del sistema generalmente por una interacción con el usuario.</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Comando</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Instrucción que se le ordena a un formulario.</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Resources</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Objeto donde Servoy guarda la información de las conexiones a bases de datos, hojas de estilo, 
									seguridad e internacionalización para usarlo luego en la solución.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Application Server</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Un servidor de aplicaciones gestiona la mayor parte (o la totalidad) de las funciones de lógica 
									de negocio y de acceso a los datos de la aplicación. Los principales beneficios de la aplicación de la 
									tecnología de servidores de aplicación son la centralización y la disminución de la complejidad en el 
									desarrollo de aplicaciones. Servoy cuenta con su propia versión de servidor de aplicaciones el cual contiene 
									la configuración de la implementación deseada.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Smart Client</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">El cliente nativo de Servoy que se instala y actualiza automáticamente en una máquina cliente.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Web Client</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Cliente de Servoy que corre en un explorador de internet sin necesidad de instalación en la 
									máquina cliente. Corre toda su lógica de negocios en el Servoy Application Server y se muestra en el explorador 
									generando HTML y CSS. Soporte uso de AJAX.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Runtime Client</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Aplicación nativa de una solución para una sola instalación. No requiere Servoy Application 
									Server para ejecutarse. También contiene una base de datos PostgreSQL para los dato y puede ser ejecutado 
									desde un disco duro, memoria USB o CD/DVD.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Headless Client</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Cliente de Servoy sin interfaz gráfica. Se ejecuta en el Servoy Application Server.
								</span>
							</td>
						</tr>
						
						<tr>
							<th colspan="2"><span class="texto">Programación</span></th>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Solución</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Aplicación que puede ser ejecutada con cualquiera de los clientes de Servoy. Contiene 
									formularios, lógica de negocios y definiciones en la base de datos.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Módulo</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Una solución contenida en otra solución.</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Scopes</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Contexto de ejecución de JavaScript dentro de la solución. Un "scope" contiene variables y 
									funciones. Servoy tiene 3 tipos: Global, Form y Base de Datos.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Form</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Objeto que provee de una interfaz para el usuario y/o lógica de negocios. La interfaz se crea 
									de Partes que contienen Elementos.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Elemento del Form</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Control gráfico que se inserta en un Form. Los elementos incluyen:</span>
									<ul>
										<li>
											<i>Label</i> (Etiqueta) - Texto que aparece en un Form - generalmente estático aunque puede ser 
											derivado en tiempo de ejecución. No puede ser editado por el usuario final.
										</li>
										<li>
											<i>Field</i> (Campo) - Elemento conectado a un Dataprovider. Puede ser editado por el usuario final y 
											puede ser mostrado de varias maneras (normal, password, radios, check, entre otros).</li>
										<li><i>Button</i> (Botón) - Etiqueta especial formateado para que se muestre como botón. Generalmente 
											atado a un método.
										</li>
										<li><i>Lines and shapes</i> (Líneas y Formas) - Objetos de dibujo para la estética de la interfase.
										</li>
										<li><i>Portal</i> - Objeto que muestra datos de una relación de uno a muchos en Campos.
										</li>
										<li><i>Tabpanel</i> - Objeto que permite mostrar varios Forms en pestañas dentro de otro. Los Forms 
											agregados pueden estar relacionados por los datos o no.
										</li>
										<li><i>Beans</i> - Objetos visuales de Java que extienden la funcionalidad.</li>
									</ul>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Dataprovider</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Propiedad de algunos objetos (tanto de la interfaz del usuario como en el código) que 
									contiene datos. Puede ser una Variable Global, una Variable del Form o un campo de un registro de la base de 
									datos.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Método</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Función de JavaScript enganchada a un objeto. Es un grupo de código. Un método puede llamar a 
									otros métodos, cambiar propiedades para elementos del Form, entre otra cosas.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Plugin</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Extiende la funcionalidad de Servoy usando Java. Son accedidos desde el código. Hay una API 
									disponible para escribir plugins para Servoy.
								</span>
							</td>
						</tr>
						
						<tr>
							<th colspan="2"><span class="texto">Datos</span></th>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Base de Datos</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su 
									posterior uso.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>SQL (Structured Query Language)</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos 
									tipos de operaciones en ellas.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>PostgreSQL</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Sistema de gestión de bases de datos objeto-relacional, distribuido bajo licencia BSD y con su 
									código fuente disponible libremente. Es el sistema de gestión de bases de datos de código abierto más potente 
									del mercado y el elegido por Servoy para acompañar su producto.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Tabla</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Combinación de filas (registros) y columnas (campos) que definen el formato para guardar 
									información en la base de datos. Los datos de la tabla pueden ser usados en Servoy por los Form de una solución.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Columna</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Atributo de una tabla.</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Foundset</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Objeto de Servoy que representa el resultado de una consulta de una tabla de la base de datos. 
									En Servoy, un FoundSet utiliza el caché para mostrar sus registros, pero no es necesario que "re-consulte" a la 
									base de datos. Todos los Forms de una solución tienen un FoundSet que es el que muestran en pantalla. Todos los 
									Forms de la misma tabla compartirán el FoundSet a menos que se indique lo contrario.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Record</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Representación de una fila de la base de datos como un objeto en la solución. Los Records son 
									contenidos por FoundSets.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Relación</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Relación entre 2 tablas de la base de datos. Se puede dar por uno o más campos, aunque lo 
									habitual es que sea de una clave primaria hacia un campo de otra tabla. También las hay desde variables 
									globales a tablas y combinadas las 2 alternativas.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Dataset</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Objeto de Servoy que guarda datos en formato de filas y columnas. Puede ser el resultado de 
									una consulta SQL a la base de datos. A diferencia de los FoundSet, no tiene conexión directa con la base de 
									datos. Es decir que, cualquier modificación en un Dataset, no será reflejado en la base de datos.
								</span>
							</td>
						</tr>
			
						<tr>
						<td class="gris_bordes">
							<span class="texto"><i>Calculation</i></span>
						</td>
						<td class="gris_bordes">
							<span class="texto">Valor calculado que actúa como si fuera otra columna de una tabla en la base de datos. Si existe un 
								campo en la tabla con el mismo nombre que una Calculation el valor se guarda en la base de datos. Si no existe un 
								campo con el mismo nombre, ese valor se perderá y se volverá a calcular cuando se reinicie la aplicación. Son 
								calculadas cuando son utilizadas (mostradas en un Form o nombradas en el código) o, automáticamente, cuando cambia 
								algún valor referenciado en la Calculation.
							</span>
						</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Aggregation</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Valor derivado de un cálculo sobre un campo de un conjunto de registros de una tabla. El 
									cálculo puede sumar, contar, obtener máximo, mínimo o promedio.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Variable</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Guarda un dato en tiempo de ejecución, pero no está atada a un campo de la base de datos. Pueden 
									ser mostradas en pantallas. Se pueden definir en un Form o como Globales estando disponibles en cualquier contexto.
								</span>
							</td>
						</tr>
			
						<tr>
							<th colspan="2"><span class="texto">Eclipse</span></th>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Workspace</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Directorio donde se guarda todo el trabajo de Desarrollo en Eclipse. Contiene una carpeta por 
									cada proyecto y metadata para Eclipse. Se pueden tener muchos workspace en una máquina pero sólo se permite 
									trabajar con uno por vez.
								</span>
							</td>
						</tr>
			
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Perspectiva</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Vista del espacio de trabajo. Hay distintas perspectivas según el propósito. En Servoy las 
									más utilizadas son "Servoy Design" para el desarrollo, "Debug" para debuggear una aplicación y "Team 
									Synchronizing" para sincronizar con un repositorio SVN.
								</span>
							</td>
						</tr>
					</table>
				</div>
			
<!----------------------------------------------------------->

			<li class="wiki">
				<a onclick="esconderSeccion('instalacion')">
					Instalación</a></li>
					
				<div id="instalacion" name="instalacion" class="seccion">
					<div class="gris_todo">
						<i>
							<p class="normal">El instalador es el mismo para el Servoy Developer como para el Servoy Application Server.
							</p>
						</i>
					</div>
			
					<p class="normal">Primero debemos descargar el instalador de Servoy desde 
						<a class="naranja" href="http://www.servoy.com/download">este link</a>. Allí, tendremos que registrarnos y luego, elegir la 
						versión que se querrá instalar. 
					</p>
					<p class="normal">Las 2 versiones disponibles son: </p>
					<ul>
						<li>Multi-Plataforma desde un .jar</li>
						<li>Ejecutable de Windows (.exe)</li>
					</ul>
			
					<p class="normal"> Una vez finalizada la descarga del instalador, debemos ejecutarlo. Para esto se lo puede haciendo doble clic 
						sobre el archivo, haciendo clic derecho sobre el archivo y buscar el <i>Abrir Con</i> y elegir Java o desde la consola de 
						comandos ejecutando la instrucción <i>java -jar servoy_installer.jar</i>.
					</p>
			
					<h4 class="titulo_negro">Paso a paso del instalador</h4>
					<ul>
						<li>Pantalla de Bienvenida. Tocamos "Next".<br>
							<img src="images/manual_servoy/servoy_instalar_1.png" alt="Servoy Instalación 1" width="320" height="auto">
						</li>
						
						<li>Contrato de Licencia. Aceptamos (marcando como en la imágen) y tocamos "Next".<br>
							<img src="images/manual_servoy/servoy_instalar_2.png" alt="Servoy Instalación 2" width="320" height="auto">
						</li>
			
						<li>Indicamos la ruta donde se lo va a instalar. El directorio de instalación debe tener permisos de Lectura/Escritura para 
							los usuarios que vayan a utilizar el Servoy. Tocamos "Next".<br>
							<img src="images/manual_servoy/servoy_instalar_3.png" alt="Servoy Instalación 3" width="320" height="auto">
						</li>
				
						<li>Elegimos qué producto de Servoy se va a instalar. En este caso, marcamos "Servoy Developer" y luego "Next".<br>
							<img src="images/manual_servoy/servoy_instalar_4.png" alt="Servoy Instalación 4" width="320" height="auto">
						</li>
			
						<li>Conexión con la Base de Datos. Aquí tenemos 3 opciones:<br>
							<ul>
								<li>Instalar PostgreSQL junto con Servoy.</li>
								<li>Instalar PostgreSQL como una aplicación independiente.</li>
								<li>Conectarse a una Base de Datos ya existente.</li>
							</ul>
							<img src="images/manual_servoy/servoy_instalar_5.png" alt="Servoy Instalación 5" width="320" height="auto"><br>
							<span class="text">Elegimos la opción "A" como indica la imágen y luego tocamos "Next".</span>
						</li>
						
						<li>Configuración de la Base de Datos. Indicamos el puerto y los directorios donde se va a instalar el PostgreSQL. Tocamos 
							"Next".<br>
							<img src="images/manual_servoy/servoy_instalar_6.png" alt="Servoy Instalación 6" width="320" height="auto">
						</li>
			
						<li>Opciones de Instalación. Marcamos como indica la imágen y tocamos "Next".<br>
							<img src="images/manual_servoy/servoy_instalar_7.png" alt="Servoy Instalación 7" width="320" height="auto">
						
			
						<p class="normal">Las opciones son las siguientes:</p>
						<table>
							<tr>
								<td>
									<span class="texto"><b>Paquete</b></span>
								</td>
								<td>
									<span class="texto"><b>Obligatorio</b></span>
								</td>
								<td>
									<span class="texto"><b>Contenido</b></span>
								</td>
							</tr>
							<tr>
								<td>
									<span class="texto">Application Server</span>
								</td>
								<td>
									<span class="texto">Sí</span>
								</td>
								<td>
									<span class="texto">Servoy Application Server</span>
								</td>
							</tr>
							<tr>
								<td>
									<span class="texto">Developer</span>
								</td>
								<td>
									<span class="texto">No</span>
								</td>
								<td>
									<span class="texto">Servoy Developer</span>
								</td>
							</tr>
							<tr>
								<td>
									<span class="texto">JDBC Driver Files</span>
								</td>
								<td>
									<span class="texto">Sí</span>
								</td>
								<td>
									<span class="texto">JDBC drivers sugeridos por Servoy</span>
								</td>
							</tr>
							<tr>
								<td>
									<span class="texto">Database</span>
								</td>
								<td>
									<span class="texto">No</span>
								</td>
								<td>
									<span class="texto">PostgreSQL</span>
								</td>
							</tr>
							<tr>
								<td>
									<span class="texto">Runtime Builder</span>
								</td>
								<td>
									<span class="texto">No</span>
								</td>
								<td>
									<span class="texto">Plugin para el Servoy Developer para crear Clientes Runtime</span>
								</td>
							</tr>
							<tr>
								<td>
									<span class="texto">Application Server Service</span>
								</td>
								<td>
									<span class="texto">No</span>
								</td>
								<td>
									<span class="texto">Instalar el Servoy Application Server como servicio</span>
								</td>
							</tr>
							<tr>
								<td>
									<span class="texto">Example Files</span>
								</td>
								<td>
									<span class="texto">No</span>
								</td>
								<td>
									<span class="texto">Soluciones de Ejemplo</span>
								</td>
							</tr>
							<tr>
								<td>
									<span class="texto">Headless Client Sample</span>
								</td>
								<td>
									<span class="texto">No</span>
								</td>
								<td>
									<span class="texto">Ejemplo para un Servoy Headless Client</span>
								</td>
							</tr>
							<tr>
								<td>
									<span class="texto">Documentation Files</span>
								</td>
								<td>
									<span class="texto">Sí</span>
								</td>
								<td>
									<span class="texto">Documentación para el Cliente de Servoy</span>
								</td>
							</tr>
							<tr>
								<td>
									<span class="texto">Beans</span>
								</td>
								<td>
									<span class="texto">No</span>
								</td>
								<td>
									<span class="texto">Beans sugeridos por Servoy</span>
								</td>
							</tr>
							<tr>
								<td>
									<span class="texto">Plugins</span>
								</td>
								<td>
									<span class="texto">No</span>
								</td>
								<td>
									<span class="texto">Plugins sugeridos por Servoy</span>
								</td>
							</tr>
							<tr>
								<td>
									<span class="texto">Look and Feel Files</span>
								</td>
								<td>
									<span class="texto">No</span>
								</td>
								<td>
									<span class="texto">Archivos de diseño para el Cliente Smart de Servoy</span>
								</td>
							</tr>
							<tr>
								<td>
									<span class="texto">PDF Support Package</span>
								</td>
								<td>
									<span class="texto">No</span>
								</td>
								<td>
									<span class="texto">Plugin para soportar trabajar con PDF's dentro de Servoy</span>
								</td>
							</tr>
						</table>
					</li>
			
					<li>Indicamos la ruta donde se va a alojar el Workspace de Servoy. Tocamos "Next".<br>
						<img src="images/manual_servoy/servoy_instalar_8.png" alt="Servoy Instalación 8" width="320" height="auto">
					</li>
					
					<li>Esperamos a que termine la instalación. Tocamos "Next".<br>
						<img src="images/manual_servoy/servoy_instalar_9.png" alt="Servoy Instalación 9" width="320" height="auto">
					</li>
			
					<li>Indicamos si queremos un acceso directo. Tocamos "Next".<br>
						<img src="images/manual_servoy/servoy_instalar_10.png" alt="Servoy Instalación 10" width="320" height="auto">
					</li>
					
					<li>La última pantalla nos da la opción de crear un script de instalación para cuando necesitemos hacerlo de forma no 
						atendida. No lo hacemos y tocamos "Finish". El Servoy Developer está listo para usarlo.<br>
						<img src="images/manual_servoy/servoy_instalar_11.png" alt="Servoy Instalación 11" width="320" height="auto">
					</li>
				</ul>
			</div>
					
<!-------------------------------------------------->	
					
			<li class="wiki">
				<a onclick="esconderSeccion('perspectiva_diseno')">
					Perspectiva de Diseño</a></li>
					
				<div id="perspectiva_diseno" name="perspectiva_diseno" class="seccion">	
					<table>
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Solution Explorer</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Árbol jerárquico con todos los objetos disponibles para el desarrollo en Servoy. Todo lo que se 
									puede hacer en Servoy lo va a encontrar en el Solution Explorer.
								</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Resources</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Se encuentran las conexiones a Bases de Datos, hojas de estilo, seguridad e internacionalización.
								</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Solution</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">La solución activa. Dentro de ella podremos ver los Scopes, Forms, Relaciones, Valuelist, 
									Media (imágenes) y los módulos que la componen.
								</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>JS Lib</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Funciones de JavaScript disponibles. Las hay para todos los tipos de datos (Texto, Número, 
									Vectores, etc.) como también para el flujo de una función o para tratar archivos XML.
								</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Application</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Funciones para la aplicación por ejemplo crear nuevas ventanas, salir de la aplicación o 
									redireccionar a una URL, entre otras.
								</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Solution Model</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Funciones para crear formularios y elementos de forma dinámica en tiempo de ejecución.
								</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Database Manager</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Funciones para trabajar con la Base de Datos. Tratamiento de transacciones, consultas SQL a la 
									Base de datos, manejo del guardado automático de Servoy como las principales.
								</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Utils</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Funciones útiles para distintas cosas. Formatear números o fechas, encriptar una cadena son 
									algunas de ellas.
								</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>History</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Funciones para manejar el historial del usuario. Limitado en Web Client ya que el historial lo 
									maneja el browser.
								</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Security</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Funciones para manejar la seguridad de la aplicación. Login, logout, obtener el usuario conectado 
									entre otras.
								</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>i18n</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Funciones para la internacionalización. Agregar nuevas claves, obtener una clave en cierto idioma 
									y muchas funciones más.
								</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>JSUnit</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Funciones para test unitarios de funciones.</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Plugins</i></span>		
							</td>
							<td class="gris_bordes">
								<span class="texto">Agrupa todos los plugins instalados. Cada uno será una opción donde se pueden observar sus 
									funciones asociadas.
								</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Propiedades</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Las propiedades del objeto seleccionado aparece a la derecha de la pantalla por defecto. 
									Dependiendo del objeto seleccionado se muestra un grupo de propiedades correspondientes para configurar.
								</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Form Designer</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Editor visual de los Forms. Aparece en el centro de la pantalla y se maneja con Drag n Drop para 
									agregar y desplazar los elementos dentro de un Form. Cuenta con herramientas de agrupación y de alineamiento.
								</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Script Editor</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Permite crear y modificar funciones y variables del contexto (Form, global o tabla) correspondiente. 
									Se abre en el mismo lugar que el Form Designer.
								</span>
							</td>
						</tr>
				
						<tr>
							<td class="gris_bordes">
								<span class="texto"><i>Problems View</i></span>
							</td>
							<td class="gris_bordes">
								<span class="texto">Muestra los errores y llamados de atención de la solución. Se muestra en la parte de abajo de la 
									pantalla. Para ver mayor información sobre lo informado, se puede hacer doble clic encima. Con clic derecho y la 
									opción "Quick Fix" se tendrán sugerencias sobre cómo resolver el problema en algunos casos.
								</span>
							</td>
						</tr>
					</table>
				
					<div class="amarillo">
						<h4 class="titulo_negro">NOTA</h4> 
						<p class="normal">En Eclipse al hacer clic derecho sobre cualquier elemento se mostrarán todas las opciones disponibles para 
							tal.
						</p>
					</div>
				</div>	

<!-------------------------------------------------->					
					
			<li class="wiki">
				<a onclick="esconderSeccion('conexiones_bd')">
					Conexiones a Bases de Datos</a></li>
					
				<div id="conexiones_bd" name="conexiones_bd" class="seccion">
					<div class="gris_todo">
						<i>
							<p class="normal">Servoy puede conectarse a cualquier base de datos que tenga un driver JDBC disponible. Si Ud no posee 
								ninguna base de datos, Servoy viene con PostgreSQL disponible para instalar.
							</p>
						</i>
					</div>
				
					<h4 class="titulo_negro">Crear una Base de Datos PostgreSQL</h4>
					
					<ul> 
						<li>Hacer clic derecho sobre una base de datos y elegir la opción <i>Create PostgreSQL Database</i></li>
						<li>Poner un nombre a la base de datos</li>
						<li>Esperar a que nos indique que el proceso esta OK.</li>
					</ul>
						
					<h4 class="titulo_negro">Conectarse a una base de datos existente</h4>
					<ul>
						<li>Copiar el Driver JDBC (con el Servoy Developer cerrado) en la carpeta <i>$SERVOY_DIR$/application_server/drivers</i></li>
						<li>Abrir el Servoy Developer, hacer clic derecho sobre <i>Database Servers</i> y elegir la opción <i>New Server</i></li>
						<li>Aparecerá un submenu preguntando qué base de datos es, elegir la opción que corresponda a su motor de base de datos. Aunque 
							aparezca en la lista puede ser que no exista el Driver para conectarse.</li>
						<li>Llenar los datos correspondientes. El usuario debe tener permisos de administrador.</li>
						<li>Grabar</li>
					</ul>
				</div>
				
<!-------------------------------------------------->			
			
			<li class="wiki">
				<a onclick="esconderSeccion('crear_solucion')">
					Crear una Solución</a></li>
				
				<div id="crear_solucion" name="crear_solucion" class="seccion">
					<h4 class="titulo_negro">Crear Nueva Solución</h4>
					
					<ul>
						<li>
							<p class="normal">Elija una de las 3 opciones:</p>
							<ul>
								<li><i>File > New > Servoy Solution </i>del menú del Servoy Developer.</li>
								<li>Haga clic sobre el botón <i>New</i> de la barra de herramientas. En la ventana emergente, elija el nodo de 
									<i>Servoy</i> y luego <i>Servoy Solution</i></li>
								<li>Haga clic derecho sobre <i>All Solutions</i> en el Solution Explorer o en la Solución Activa. Seleccione la opción 
									<i>Create new solution</i> del menu.</li>
							</ul>
						
							<p class="normal">Aparecerá una ventana donde debe eligir un nombre para la solución.</p>
						</li>
						
						<li>
							<p class="normal">Seleccione el tipo de solución:</p>
							<ul>
								<li><i>Normal:</i> Solución estándar que puede ser accedida por cualquier cliente o usada como módulo.</li>
								<li><i>Module:</i> Solución que va a ser parte de otra solución.</li>
								<li><i>Web Client Only:</i> Solución sólo accedida por Web Client.</li>
								<li><i>Smart Client Only:</i> Solución sólo accedida por Smart Client.</li>
								<li><i>Login:</i> Solución que permite a usuarios conectarse a otra solución.</li>
								<li><i>Authenticator:</i> Solución que autentica usuarios con el servidor.</li>
								<li><i>Pre-import hook module:</i> Solución que se utiliza antes de importar otra en el servidor.</li>
								<li><i>Post-import hook module:</i> Solución que se utiliza luego de importar otra en el servidor.</li>
								<li><i>Mobile:</i> Solución sólo accedida por Mobile Client.</li>
								<li><i>Mobile Shared Module:</i> Solución módulo de soluciones de tipo Mobile.</li>
							</ul>
						</li>
						
						<li>Seleccione un proyecto de recursos.</li>
						
						<li>Haga clic en <i>Finish</i> y la nueva solución será creada y activada.</li>
					</ul>
					<div class="verde">
						<h4 class="titulo_negro"><b>RECOMENDACIÓN</b></h4> 
						<p class="normal">Sólo tenga un proyecto de recursos por workspace para evitar confusiones.</p>
					</div>
					
					<h4 class="titulo_negro">Importar Solución Existente</h4>
					
					<div class="amarillo">
						<h4 class="titulo_negro">NOTA</h4> 
						<p class="normal">Puede encontrar soluciones de ejemplo en <i>$SERVOY_DIR$/application_server/solutions/examples</i> para 
							importar.</p>
					</div>
					
					<ul> 	 
						<li>Elija una de las 2 opciones:
							<ul>
								<li><i>File > Import</i>. En la ventana emergente, seleccione <i>Servoy > Import Solution</i> y haga clic en <i>Next</i></li>
								<li>Haga clic derecho sobre <i>All solutions</i> en el Solution Explorer y seleccione <i>Import a solution</i></li>
							</ul>
						</li>
						
						<li>Seleccione el archivo <i>.servoy</i> que desea importar.</li>
						<li>Mantenga los default de las opciones para importar.</li>
						<li>Haga clic en <i>Finish</i>.</li>
						<li>Hay posibilidades que aparezcan algunas preguntas sobre importar datos, hojas de estilo y otros elementos contenidos en 
						el archivo. Haga clic en <i>Yes</i>.</li>
						<li>Una ventana con el resultado le aparecerá. Si el proceso terminó exitosamente, la solución importada será activada.</li>
					</ul>
				</div>
					
<!-------------------------------------------------->				
				
			<li class="wiki">
				<a onclick="esconderSeccion('crear_form')">
					Crear un Form</a></li>
					
				<div id="crear_form" name="crear_form" class="seccion">
					<ul>
						<li>1 - Elija una de las 3 opciones:
							<ul>
								<li>Clic derecho sobre la solución activa en el Solution Explorer y seleccione <i>Create New Form</i>.</li>
								<li>Clic derecho sobre Forms en el Solution Explorer y seleccione seleccione <i>Create New Form</i>.</li>
								<li>Clic sobre el botón <i>New Form</i> en la barra de herramientas del Servoy Developer.</li>
							</ul>
						</li>
						<li>Seleccione la tabla de la base de datos con la cual va a trabajar el nuevo Form. Si hace clic en el botón 
							<i>...</i> se abrirá un árbol con todas las bases y tablas disponibles para que elija. Si no quiere que el form trabaje 
							con una tabla seleccion <i>-none-</i>.
						</li>
						<li>El nombre del Form se llenará automáticamente con el nombre de la tabla elegida. Igualmente, puede editarlo.</li>
						<div class="verde">
							<h4 class="titulo_negro">RECOMENDACIÓN</h4> 
							<p class="normal">Recomendamos seguir una convención para que sea fácil ubicar los forms posteriormente. Por ejemplo 
								"clientes_dtl" para un Form de clientes que muestre de un registro por vez y "clientes_tbl" para uno que muestre una 
								tabla de clientes.
							</p>
						</div>
						<li>Puede elegir la hoja de estilo que va a utilizar el Form.</li>
						<li>Verique que se va a crear en la solución que desea. Puede cambiar a un módulo si lo desea.</li>
						<li>Haga clic en <i>Next</i>.</li>
						<li>Seleccione los datos a mostrar en el Form. Pueden ser tanto columnas de la tabla seleccionada, como variables, 
							calculations, aggregations o campos relacionados. Sosteniendo la tecla <i>Shift</i> puede seleccionar un rango y con la 
							tecla <i>Control</i> puede multiseleccionar.</li>
						<li>Elija las opciones sobre cómo se agregarán los campos en el Form.
							<ul>
								<li><i>Place With Labels</i> : Colocará una etiqueta para cada dato seleccionado.</li>
								<li><i>Place Horizontal</i> : Colocará los datos uno al lado del otro (si no seleccionado, los colocará uno debajo 
									del otro).</li>
								<li><i>Fill Name Property</i> : Llenará automáticamente la propiedad "Name" de cada elemento.</li>
								<li><i>Fill Text Property</i> : Llenará automáticamente la propiedad "Text" de cada elemento.</li>
								<li><i>Place As Labels</i> : Colocará los datos como etiquetas y no como campos de texto.</li>
							</ul>
							<div class="amarillo" style="width: 90%; height: auto;">
								<h4 class="titulo_negro">NOTA</h4> 
								<p class="normal">Los Forms normalmente son creados como vista de un registro por vez, a menos que se active la 
									opción <i>Place Horizontal</i> que lo hará como forma de tabla. Puede modificarse luego de ser creado.</p>
							</div>
						</li>
						<li>Haga clic en <i>Finish</i>. Se abrirá el Form  creado en el Form Designer.</li>
					</ul>
				
					<h4 class="titulo_negro">Editar un Form</h4>
					<p class="normal">Debe seleccionar el Form deseado en el Solution Explorer y luego elegir una de las 2 opciones:</p>
						<ul>
							<li>Presione Ctrl-Shift-A</li>
							<li>Clic derecho sobre el nombre y seleccionar <i>Open in Form Designer</i></li>
						</ul>
					<div class="verde">
						<h4 class="titulo_negro">RECOMENDACIÓN</h4> 
						<p class="normal">Para poder abrir un Form haciendo doble clic sobre su nombre en el Solution Explorer hace falta cambiar una 
							preferencia. Para eso debe ir a <i>Window > Preferences > Servoy > Solution Explorer > Form Node Double Click Operation</i> 
							y seleccionar la opción <i>Open Form Designer</i>.
						</p>
					</div>
				</div>

<!-------------------------------------------------->
				
			<li class="wiki">
				<a onclick="esconderSeccion('probar_apps')">
					Probar una aplicación</a></li>
					
				<div id="probar_apps" name="probar_apps" class="seccion">	
					<p class="normal">Con Servoy es posible probar y debuggear sus aplicaciones directamente desde el entorno de desarrollo. Esto 
						incluye tanto clientes Smart como Web gracias a que el Servoy Developer levanta una instancia del Application Server de Servoy 
						que permite 2 conexiones - 1 para Web y otra para Smart. Los cambios que se apliquen en la aplicacion se verán reflejados en 
						los clientes sin necesidad de inciarlos nuevamente (sólo en entorno de desarrollo).
					</p>
					<div class="amarillo">
						<h4 class="titulo_negro">NOTA</h4> 
						<p class="normal">Las aplicaciones Web suelen ser muy difíciles de debuggear en un browser ya que su lógica de negocios se 
							divide entre el cliente y el servidor asincrónicamente. En Servoy esto no ocurre ya que toda la lógica de negocios corre 
							en el servidor.
						</p>
					</div> 
					
					<p class="titulo_negro">Smart Client</p>
					<p class="normal">Elija una de las 2 opciones:</p>
					<ul>
						<li>Actions > Start Smart Client</li>
						<li>Botón de Start Smart Client en la barra de herramientas</li>
					</ul>
					
					<p class="titulo_negro">Web Client</p>
					<p class="normal">Elija una de las 2 opciones:</p>
					<ul>
						<li>Actions > Start Web Client</li>
						<li>Botón de Start Web Client en la barra de herramientas</li>
					</ul>
					<div class="amarillo">
						<h4 class="titulo_negro">NOTA</h4> 
						<p class="normal">Puede cambiar el browser donde se prueban sus aplicaciones yendo a Window > Preferences > General > Web 
							Browser y agregar su browser preferido agregándolo a la lista.
						</p>
					</div>
				</div>

<!-------------------------------------------------->					
				
			<li class="wiki">
				<a onclick="esconderSeccion('logica_negocios')">
					Implementando la Lógica de Negocios</a></li>
					
				<div id="logica_negocios" name="logica_negocios" class="seccion">	
					<p class="normal">A pesar de que la plataforma de Servoy está basada en Java por completo, el desarrollador no debe saber Java. 
						Toda la lógica de negocios se escribe en JavaScript, lo cual lo hace mucho más productivo que escribir en Java puro. Servoy 
						también le provee funciones para hacerlo más eficiente.
					</p>
					<p class="titulo_negro">Creación de Variables</p>
					<p class="normal">Elija una de las 2 opciones:</p>
					<ul>
						<li>En el Solution Explorer, dirijirse al contexto deseado (Ejemplo: <i>Active Solution > Globals > variables </i>). Hacer 
							clic derecho sobre <i>variables</i> y seleccionar la opción <i>Create Variable</i>. Poner un nombre, elegir un tipo de 
							datos y, opcionalmente, un valor por defecto. La variable será creada en el archivo correspondiente (<i>globals.js</i> 
							en el ejemplo), el cual se abrirá en el Script Editor.
						</li>
						<li>En el Solution Explorer, dirijirse al contexto deseado (Ejemplo: <i>Active Solution > Globals > variables </i>). 
							Seleccionar <i>variables</i> y cliquear sobre el botón <i>Create Variable</i> de la barra de herramientas inferior del 
							Solution Explorer. Poner un nombre, elegir un tipo de datos y, opcionalmente, un valor por defecto. La variable será 
							creada en el archivo correspondiente (<i>globals.js</i> en el ejemplo), el cual se abrirá en el Script Editor.
						</li>
						<li>En el archivo correspondiente, fuera de todas las funciones, agregar </p>
							<div class="borde_gris" style="width: 90%; height: auto;">
							<h4 class="titulo_negro">CÓDIGO</h4> 
							<p class="normal">var nombreVar = "miValor";</p>
							</div>
						</li>
					</ul>
						
					<h4 class="titulo_negro">Creación de Métodos</h4>
					<p class="normal">Elija una de las 2 opciones:</p>
					<ul>
						<li>En el Solution Explorer, dirijirse al contexto deseado (Ejemplo: <i>Active Solution > Globals</i>). Hacer clic derecho 
							sobre <i>Globals</i> y seleccionar la opción <i>Create Method</i>. Poner un nombre. El método será creado en el archivo 
							correspondiente (<i>globals.js</i> en el ejemplo), el cual se abrirá en el Script Editor.
						</li>
						<li>En el Solution Explorer, dirijirse al contexto deseado (Ejemplo: <i>Active Solution > Globals</i>). Seleccionar 
							<i>Globals</i> y cliquear sobre el botón <i>Create Method</i> de la barra de herramientas inferior del Solution 
							Explorer. Poner un nombre. El método será creado en el archivo correspondiente (<i>globals.js</i> en el ejemplo), el cual 
							se abrirá en el Script Editor.
						</li>
						<li>En el archivo correspondiente, fuera de otras funciones, agregar
							<div class="borde_gris">
								<h4 class="titulo_negro">CÓDIGO</h4> 
								<p class="normal">function miMetodo() {</br>}</p>
							</div>
						</li>
					</ul>	
				
					<h4 class="titulo_negro">Invocación de Métodos y Variables</h4>
					<p class="normal">Para invocar a una función o variable, primero se debe saber cuál es el contexto en el que se está trabajando. 
						Para esto, es útil mirar el nombre del archivo abierto. Suele ser el nombre del Form, tabla o contexto seguido de ".js".
					</p>
					<p class="normal">Ejemplos:</p>
					<ul>
						<li>Globales desde otro contexto:
							<div class="borde_gris">
								<h4 class="titulo_negro">CÓDIGO</h4> 
								<p class="normal">globals.funcion(parámetros)</br>globals.variable = 1</p>
							</div>
						</li>
						<li>Forms desde otro contexto:
							<div class="borde_gris">
								<p class="titulo_negro"><b>CÓDIGO</b></p> 
								<p class="normal">forms.nombreForm.funcion()</br>forms.nombreForm.controller.show()</br>forms.nombreForm.variable = 1</p>
							</div>
						</li>			
						<li>Contexto "cont" desde otro contexto:
							<div class="borde_gris">
								<h4 class="titulo_negro">CÓDIGO</h4> 
								<p class="normal">scopes.cont.funcion()</br>scopes.cont.variable = "Estoy en otro contexto"</p>
							</div>
						</li>
						<li>Globales o Forms en el mismo contexto:
							<div class="borde_gris">
								<h4 class="titulo_negro">CÓDIGO</h4> 
								<p class="normal">funcion()</br>variable = "Estoy en el mismo contexto"</p>
							</div>
						</li>
					</ul>
				
					<h4 class="titulo_negro">Invocación de Funciones de Servoy</h4>
					<p class="normal">Las funciones de Servoy se pueden invocar desde el Solution Explorer, sin necesidad de escribir ni una letra en 
						el Script Editor. Con el archivo correspondiente abierto, se puede invocar la llamada de una función o un ejemplo de cómo se 
						puede usar esa función.
					</p>
					<p class="normal">Invocación de Llamada</p>
					<p class="normal">Elija una de las 2 opciones:</p>
					<ul>
						<li>En el Solution Explorer, dirijirse a la sección donde se encuentra la función deseada (Ejemplo DatabaseManager). En la 
							lista de métodos de la parte de abajo del Solution Explorer, hacer clic derecho sobre la función deseada y seleccionar la 
							opción <i>Move Code</i>. El código será copiado en el archivo correspondiente.
						</li>
						<li>En el Solution Explorer, dirijirse a la sección donde se encuentra la función deseada (Ejemplo DatabaseManager). En la 
							lista de métodos de la parte de abajo del Solution Explorer, seleccionar la función deseada y cliquear el botón <i>Move 
							Code</i> de la barra de herramientas inferior del Solution Explorer. El código será copiado en el archivo 
							correspondiente.
						</li>
					</ul>
					
					<p class="normal">Invocación de Ejemplo</p>
					<p class="normal">Elija una de las 2 opciones:</p>
					<ul>
						<li>En el Solution Explorer, dirijirse a la sección donde se encuentra la función deseada (Ejemplo DatabaseManager). En la 
							lista de métodos de la parte de abajo del Solution Explorer, hacer clic derecho sobre la función deseada y seleccionar la 
							opción <i>Move Sample</i>. El código de ejemplo de la función será copiado en el archivo correspondiente.
						</li>
						<li>En el Solution Explorer, dirijirse a la sección donde se encuentra la función deseada (Ejemplo DatabaseManager). En la 
							lista de métodos de la parte de abajo del Solution Explorer, seleccionar la función deseada y cliquear el botón <i>Move 
							Sample</i> de la barra de herramientas inferior del Solution Explorer. El código de ejemplo de la funcion será copiado en 
							el archivo correspondiente.
						</li>
					</ul>
					<div class="verde">
						<h4 class="titulo_negro">RECOMENDACIÓN</h4> 
						<p class="normal">Servoy también usa el auto-completado para su código. Para invocarlo, debe tocar <i>Ctrl+Space</i> y le 
							aparecerán las sugerencias sobre cómo puede seguir la instrucción.
						</p>
					</div>
				</div>
				
<!-------------------------------------------------->				
					
			<li class="wiki">
				<a onclick="esconderSeccion('estilizando')">
					Estilizando la Solución</a></li>
				
				<div id="estilizando" name="estilizando" class="seccion">
					<p class="normal">Servoy soporta el uso de CSS (hojas de estilo en cascada de HTML) para estilizar sus aplicaciones. Una hoja de 
						estilo es un archivo de texto puro con determinado formato que se guarda en la parte de Resources del Workspace. Puede haber 
						tantos archivos como se quiera y se puede utilizar más de uno por solución, aunque sólo uno por Form. Incluso puede cambiar el 
						estilo programáticamente. Funcionan tanto para Web Client como para Smart Client.
					</p>
					<p class="normal">Un estilo está dividido en clases. Una clase es un conjunto de propiedades de un elemento particular. El estilo 
						se aplica a un Form y la clase se aplica tanto a un Form como a los elementos dentro del mismo. Los elementos que pueden ser 
						usados son: form, label, button, field, check, radio, combobox, tabpanel y portal.
					</p>
					<p class="normal">Ejemplo:</br>
						Label con letra blanca y fondo negro como default y una clase <i>título</i> con la letra más grande y en negrita</p>
					<div class="borde_gris">
						<h4 class="titulo_negro">CÓDIGO</h4> 
						<p class="normal">label {<br>color: #ffffff;<br>background-color: #000000;<br>font: 10pt Verdana;<br>}<br>
										  label.titulo {color: #ffffff;<br>background-color: #000000;<br>font: bold 14pt Verdana;<br>}
						</p>
					</div>
					
					<h4 class="titulo_negro">¿Cómo usarlo en una solución?</h4>
					<p class="normal">Para aplicar un estilo a un Form, se debe elegir el estilo deseado en la propiedad <i>StyleName</i> del Form. 
						Luego, se puede elegir una clase determinada o simplemente que tome la clase default en la propiedad <i>StyleClass</i>.
					</p>
					<p class="normal">Para los elementos del Form, sólo se podrán aplicar las clases que están dentro del estilo elegido para el Form 
						que integran. Para aplicar una clase determinada, se la debe elegir en la propiedad <i>StyleClass</i> (sólo aparecerán las 
						clases para el elemento seleccionado).
					</p>
				</div>	
		</ul>
	</div>

	<?php
		include "pie.php";
	?>
	<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
	<script src="js/esconder_secciones.js"></script>
</body>
</html>